<template>
  <div className="mass-distribution-check-info-content">
    <div :class="[{'tw-pointer-events-none':false}]">
      <div>
        <el-table
                ref="table"
                height="tableHeight + 'px'"
                :data="assemblyTreeMassAttributeInfoList" highlight-current-row
                :row-style="{height: '0'}"
                :cell-style="{padding: '1px'}" border style="width: 100%;font-size: 13px;"
                v-bind:style="{ height: tableHeight + 'px' }"
                @row-click="handleRowClick"
                @sort-change="handleSortChange">
          <el-table-column
                  :label="$t('message.MassDistributionCheckTool.number')"
                  align="center"
                  width="55"
          >
            <template v-slot="scope">
              {{ scope.$index + 1 }}
            </template>
          </el-table-column>
          <el-table-column
                  prop="name"
                  :label="$t('message.MassDistributionCheckTool.name')"
                  align="center"
                  width="150"
                  sortable :sort-method="sortByName"
          >
          </el-table-column>
          <el-table-column
                  prop="count"
                  :label="$t('message.MassDistributionCheckTool.count')"
                  align="center"
                  width="70"
                  sortable :sort-method="sortByCount"
          >
          </el-table-column>
          <el-table-column
                  prop="mass"
                  sortable
                  :label="$t('message.MassDistributionCheckTool.mass') + '/' + assemblyTreeMassAttributeInfoList[0].massUnit"
                  align="center"
                  width="120"
                  sortable :sort-method="sortByMass"
          >
          </el-table-column>
          <el-table-column
                  :label="$t('message.MassDistributionCheckTool.baryCenter') + '/' + assemblyTreeMassAttributeInfoList[0].baryCenter.unit"
                  align="center"
                  width="240"
                  sortable :sort-method="sortByMass"
          >
            <template v-slot="scope">
              {{ '(' + scope.row.baryCenter.x + ', ' +  scope.row.baryCenter.y + ', ' + scope.row.baryCenter.z + ')'}}
            </template>
          </el-table-column>
          <el-table-column
                  prop="weight"
                  sortable
                  :label="$t('message.MassDistributionCheckTool.weight') + '/%'"
                  align="center"
                  width="120"
                  sortable :sort-method="sortByWeight"
          >
          </el-table-column>
          <el-table-column
                  prop="standardWeight"
                  :label="$t('message.MassDistributionCheckTool.standardWeight') + '/%'"
                  align="center"
                  width="120"
                  sortable :sort-method="sortByStandardWeight"
          >
            <template v-slot="scope">
              <input ref="editorInput"
                     class="editor-input"
                     :disabled="scope.row.isDisabled"
                     v-model.trim="scope.row.standardWeight"
              >
              </input>
            </template>
          </el-table-column>
          <el-table-column
                  prop="standardMass"
                  :label="$t('message.MassDistributionCheckTool.standardMass') + '/' + assemblyTreeMassAttributeInfoList[0].massUnit"
                  align="center"
                  width="120"
                  sortable :sort-method="sortByStandardMass"
          >
          </el-table-column>
          <el-table-column
                  prop="deviationWeight"
                  :label="$t('message.MassDistributionCheckTool.deviationWeight') + '/%'"
                  align="center"
                  width="120"
                  sortable :sort-method="sortByDeviationWeight"
          >
          </el-table-column>
          <el-table-column
                  prop="deviationMass"
                  :label="$t('message.MassDistributionCheckTool.deviationMass')  + '/' + assemblyTreeMassAttributeInfoList[0].massUnit"
                  align="center"
                  width="120"
                  sortable :sort-method="sortByDeviationMass"
          >
          </el-table-column>
        </el-table>
      </div>
    </div>
    <div class="mass-distribution-check-wrapper">
      <div class="mass-distribution-check-histogram">
        <div ref="histogram" style="width: 1200px; height: 500px">
        </div>
      </div>
    </div>
  </div>

</template>

<script>
import {massDistributionCheckToolManager} from "./MassDistributionCheckToolManager";
import {copyJSON} from "three/addons/libs/ecsy.module";
import * as echarts from 'echarts';
import {
  Document,
  Packer,
  Paragraph,
  ImageRun,
  ISectionOptions,
  Header,
  TextRun,
  HeadingLevel,
  Table,
  TableRow,
  TableCell,
  WidthType,
  VerticalAlign,
  BorderStyle,
  ShadingType,
  Footer,
  AlignmentType
} from 'docx';
import saveAs from 'file-saver';

export default {
  name: "MassDistributionCheckInfoContent",
  props: {
    assemblyTreeMassAttributeInfoList: [],
    isMassComputed: true,
    isExportHistogram: true,
    isMassReComputed: false,
  },
  data() {
    return {
      histogramInfoList: [],
      currentMassAttributeInfo: null,
      dataName: [],
      dataMass: [],
      dataStandardMass: [],
      histogram: null,
      isSortName: true,
      prop: '',
      order: null,
      tableHeight: 170,
      computeCount: 0,
    }
  },
  methods: {
    initTableHeight() {
      let tableLength = this.assemblyTreeMassAttributeInfoList.length;
      if(tableLength <= 6) {
        this.tableHeight = (tableLength + 1) * 40 + 10;
      } else if(tableLength > 6) {
        this.tableHeight = 7 * 40 + 10;
      }
    },
    handleRowClick(row, column, event) {
      if (column?.property === 'standardWeight' && row?.type === 'Assembly' && row?.standardWeight === 100) {
        // 禁用该行的该列输入框
        row.isDisabled = true;
      }
    },
    sortByName(a,b) {
      return b.name.localeCompare(a.name);
    },
    sortByCount(a,b) {
      if(parseFloat(a.count) > parseFloat(b.count)) {
        return 1;
      } else if(parseFloat(a.count) < parseFloat(b.count)) {
        return -1;
      } else if(parseFloat(a.count) === parseFloat(b.count)) {
        return b.name.localeCompare(a.name);
      }
    },
    sortByMass(a,b) {
      if(parseFloat(a.mass) > parseFloat(b.mass)) {
        return 1;
      } else if(parseFloat(a.mass) < parseFloat(b.mass)) {
        return -1;
      } else if(parseFloat(a.mass) === parseFloat(b.mass)) {
        return b.name.localeCompare(a.name);
      }
    },
    sortByWeight(a,b) {
      if(parseFloat(a.weight) > parseFloat(b.weight)) {
        return 1;
      } else if(parseFloat(a.weight) < parseFloat(b.weight)) {
        return -1;
      } else if(parseFloat(a.weight) === parseFloat(b.weight)) {
        return b.name.localeCompare(a.name);
      }
    },
    sortByStandardWeight(a,b) {
      if(parseFloat(a.standardWeight) > parseFloat(b.standardWeight)) {
        return 1;
      } else if(parseFloat(a.standardWeight) < parseFloat(b.standardWeight)) {
        return -1;
      } else if(parseFloat(a.standardWeight) === parseFloat(b.standardWeight)) {
        return b.name.localeCompare(a.name);
      }
    },
    sortByStandardMass(a,b) {
      if(parseFloat(a.standardMass) > parseFloat(b.standardMass)) {
        return 1;
      } else if(parseFloat(a.standardMass) < parseFloat(b.standardMass)) {
        return -1;
      } else if(parseFloat(a.standardMass) === parseFloat(b.standardMass)) {
        return b.name.localeCompare(a.name);
      }
    },
    sortByDeviationWeight(a,b) {
      if(parseFloat(a.deviationWeight) > parseFloat(b.deviationWeight)) {
        return 1;
      } else if(parseFloat(a.deviationWeight) < parseFloat(b.deviationWeight)) {
        return -1;
      } else if(parseFloat(a.deviationWeight) === parseFloat(b.deviationWeight)) {
        return b.name.localeCompare(a.name);
      }
    },
    sortByDeviationMass(a,b) {
      if(parseFloat(a.deviationMass) > parseFloat(b.deviationMass)) {
        return 1;
      } else if(parseFloat(a.deviationMass) < parseFloat(b.deviationMass)) {
        return -1;
      } else if(parseFloat(a.deviationMass) === parseFloat(b.deviationMass)) {
        return b.name.localeCompare(a.name);
      }
    },
    handleSortChange({column, prop, order}) {
      this.prop = prop;
      this.order = order;
      if(!order) {
        this.histogramInfoList = copyJSON(this.assemblyTreeMassAttributeInfoList);
        return;
      }
      this.arraySort(this.histogramInfoList, prop, order);
    },
    attributeValue(item) {
      let name = item.name;
      let value = item.value;
      let unit = item.unit;
      // 这里不应该使用科学计数法以后的密度值判断，需根据内核返回的值进行判断
      if (name === 'Density' && item.different) {
        return "各不相同"
      }
      if (name === "Mass") {
        return massDistributionCheckToolManager.massValue !== '' ? massDistributionCheckToolManager.massValue + unit : value + unit;
      }
      return value + unit
    },
    arraySort(arr, prop, order) {
      arr.sort((a,b) => {
        if(order === "ascending") {
          if(prop === 'name') {
            return b.name.localeCompare(a.name);
          } else {
            if (parseFloat(a[prop]) > parseFloat(b[prop])) {
              return 1;
            } else if (parseFloat(a[prop]) < parseFloat(b[prop])) {
              return -1;
            } else if (parseFloat(a[prop]) === parseFloat(b[prop])) {
              return b.name.localeCompare(a.name);
            }
          }
        } else if(order === "descending") {
          if(prop === 'name') {
            return a.name.localeCompare(b.name);
          } else {
            if (parseFloat(a[prop]) < parseFloat(b[prop])) {
              return 1;
            } else if (parseFloat(a[prop]) > parseFloat(b[prop])) {
              return -1;
            } else if (parseFloat(a[prop]) === parseFloat(b[prop])) {
              return a.name.localeCompare(b.name);
            }
          }
        }
        return 0;
      });
    },
    computeStandardMass() {
      this.dataName = [];
      this.dataMass = [];
      this.dataStandardMass = [];

      if((this.histogramInfoList.length < this.assemblyTreeMassAttributeInfoList.length || this.isMassReComputed) && !this.order) {
        this.histogramInfoList = copyJSON(this.assemblyTreeMassAttributeInfoList);
        this.isMassReComputed = false;
      } else if((this.histogramInfoList.length < this.assemblyTreeMassAttributeInfoList.length || this.isMassReComputed) && this.order && this.computeCount === 0) {

        this.histogramInfoList = copyJSON(this.assemblyTreeMassAttributeInfoList);

        this.arraySort(this.assemblyTreeMassAttributeInfoList, this.prop, this.order);
        this.arraySort(this.histogramInfoList, this.prop, this.order);
        this.isMassReComputed = false;
        this.computeCount = 1;
      }
      this.histogramInfoList.forEach(item =>{
        this.dataName.push(item.name);
        this.dataMass.push(parseFloat(item.mass));
        this.dataStandardMass.push(item.standardMass);
      });
      this.drawHistogram();
    },
    // 绘制直方图
    drawHistogram() {
      if(this.histogram) {
        this.histogram.dispose();
      }
      this.histogram  = echarts.init(this.$refs.histogram);
      const option = {
        grid: {
          top: 80,
          left: 80,
          right: 80,
          bottom: 120,
        },
        title: {
          text: '重量分布图'
        },
        tooltip: {},
        legend: {
          data: ['重量','标准重量']
        },
        xAxis: {
          axisTick: {
            alignWithLabel: true
          },
          axisLabel: {
            show: true,
            rotate: 45,
          },
          data: this.dataName,
        },
        yAxis: {
          type: 'value'
        },
        series: [{
          name: '重量',
          type: 'bar',
          data: this.dataMass,
          // color: '#3478CC',
          animation: false,
        }, {
          name: '标准重量',
          type: 'bar',
          data: this.dataStandardMass,
          // color: '#47C83E',
          animation: false,
        },
        ]
      };
      this.histogram.setOption(option);
    },
    exportHistogram() {
      // 图片数据
      let url = this.histogram.getDataURL({
        type: 'png',
        quality: 1,
        backgroundColor: '#fff',
        pixelRatio: 2,
      });
      //导出word
      this.generateWord(url);
    },
    //生成word文档
    generateWord(url) {
      if (!url || this.histogramInfoList.length === 0) {
        return;
      }
      let comacURL = 'data:image/png;' +
                     'base64,' +
                     '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1q5r2lmsBN4jUKBIIgacmWiKYzu2TO3csWvbtm2bN282xhx47vATTz1z+PhKIBGTB5MM6qE/0gMlyHJ0N/efP9w6a+tzR048t/j8xz71xZef9ytbp+EaIa+gGCC1RTSIopJEH6WAyRNHkWwdIsRDlNkWZb1YrD7+xGDbZW2XQGEFxGQC8P3vPeHrFtwUkCN24AMbk1HtiINCoioZ3/junfHCXjf6aUd+VOcat5kSkWGDiEcfG956+5M2uRDLyz7MQgAyHMRJvObKl73nzbsf+M7Oowsrw8r0qsQNcoQpMTKsqy/d8o0brvrweXMAwImFRphRvTDCOIzq5fiA/9VHbj4+yIPbFiivFgdgZGedX544gWLIs53OVFqt9uJwaarVufSiC1529vzrLjtz80w+PTfvckRGWWNlDWtrxd4H7zuw7/HZzFSL1dxMapd7odW1e/fjo5+8eYjZ1lx7/8FDSLuIHjDI29Yi9BZRrGztdvacOf87v/wvd23B9mkYAdV1kkQwPMwQOLuNC6dw/Tm7HXYXK9jahQqGJTTDoRX81U1ffPiZhXR6Z8XtahDAfTDBOYCM90ksppI4n/oP/9z7rrnswgvPTwAUAsMw2BNww4FDuOlLd375a9851lvsdrcNszwGB5fAF9i6abiwkM+eMTM/+637n/pf//DP/sPv/wJNPJAahXjkNYcQkWWTOLRSFWjfx9IHJmPz9nK/ii55aN/BV112YQJE8dZQDfQKPPzk0SJ2IreAFApImM00YyOSl5GCBjArIVI0TVBGJwxPm+yIGJpSsxIQJMIzr63i9nuf3L9QYO5MO986sbDameogaLlycLYj179i98s24dWXnHPL175T1rJpZn5x8UTana6kEjt93979P3j40Lmv27G41t80lSJ6S0nYGG0nDIay/5j/5j2PDPOdle0icufcXVUdykOH0Wm1N08VK0eHJ1b2nLvlp25891vfdPHZm5ECWURupHGq1QKk2NlF3J6/9qLryuK66RxWQRE801UBvvmdJx/eV/SxpUAXqUFSmQ7g11D1bBy04/Fzur1//2vv+It/855XXYAd03CAYbgsUc4UjsEtYJNBF2gDGTA/A2WQQZagqnHf3oO33nt/YWa8na+GBjZF5hEWbV5jcHQ+I145/MHrzv/8R37jt997yWvOS+aBaWAzYxaYBrYAV27DH/zytR//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';
      const tableData = [
        [
          this.$t('message.MassDistributionCheckTool.number'),
          this.$t('message.MassDistributionCheckTool.name'),
          this.$t('message.MassDistributionCheckTool.count'),
          this.$t('message.MassDistributionCheckTool.mass') + '/' + this.histogramInfoList[0].massUnit,
          this.$t('message.MassDistributionCheckTool.baryCenter') + '/' + this.histogramInfoList[0].baryCenter.unit,
          this.$t('message.MassDistributionCheckTool.weight') + '/%',
          this.$t('message.MassDistributionCheckTool.standardWeight') + '/%',
          this.$t('message.MassDistributionCheckTool.standardMass') + '/' + this.histogramInfoList[0].massUnit,
          this.$t('message.MassDistributionCheckTool.deviationWeight') + '/%',
          this.$t('message.MassDistributionCheckTool.deviationMass') + '/' + this.histogramInfoList[0].massUnit,
        ],
      ];

      let no = 0
      this.histogramInfoList.forEach(item => {
        let arrayItem = [];
        let baryCenter = '(' + item.baryCenter.x + ', ' + item.baryCenter.y + ', ' + item.baryCenter.z + ')';
        arrayItem.push(++no);
        arrayItem.push(item.name);
        arrayItem.push(item.count);
        arrayItem.push(item.mass);
        arrayItem.push(baryCenter);
        arrayItem.push(item.weight);
        arrayItem.push(item.standardWeight);
        arrayItem.push(item.standardMass);
        arrayItem.push(item.deviationWeight);
        arrayItem.push(item.deviationMass);
        tableData.push(arrayItem);
      });

      //文本信息
      // 一、Section1: 创建一个新的文档，并添加首页信息
      let doc = new Document({
        // defaults: {
        //   units: 'emu',
        // },
        numbering: {
          config: [
            {
              reference: "num",
              levels: [
                {
                  level: 0, // 级别，从0开始计数
                  // format: 'decimal', // 编号格式，例如1.、A.、I.等
                  format: 'decimal', // 编号格式，例如1.、A.、I.等
                  text: '%1', // 文本模板，其中%1表示当前级别的编号
                  style: {
                    paragraph: {
                      indent: {
                        left: 1440,
                        hanging: 1700
                      },
                      // font: {
                      //   name: 'SimHei',
                      //   size: 24,
                      // },
                    },
                    font: { name: "Arial", size: 12 }, // 字体样式
                  },
                  alignment: AlignmentType.LEFT,
                },
              ],
            },
          ],
        },
        sections: [
          {
            properties: {
              page: {
                size: { width: 21 * 720 / 1.27, height: 29.7 * 720 / 1.27 },
                margin: { top: 1.5 * 720 / 1.27, right: 1.0 * 720 / 1.27, bottom: 1.0 * 720 / 1.27, left: 1.0 * 720 / 1.27 },
              },
            },
            headers: {
              default: new Header({
                children: [
                  new Paragraph({
                    children: [
                      new TextRun({
                        text: '\n',
                        font: 'SimSun',
                        size: 12,
                      }),
                    ],
                  }),
                  new Paragraph({
                    children: [
                      new ImageRun({
                        data: comacURL,
                        transformation: {
                          width: 91,
                          height: 57,
                        },
                      }),
                    ],
                    alignment: AlignmentType.LEFT,
                  }),
                ],
              }),
            },
            footers: {
              default:
                new Footer({
                  children: [
                    new Paragraph({
                      children: [
                        // new TableBorders({
                        //   margins: {
                        //     top: 100, // 上边距（单位： Twip）
                        //     bottom: 100, // 下边距（单位： Twip）
                        //     left: 100, // 左边距（单位： Twip）
                        //     right: 100, // 右边距（单位： Twip）
                        //   },
                        //   borders: {
                        //     top: {style: BorderStyle.SINGLE, size: 1, color: '000000'}, // 上边框
                        //     bottom: {style: BorderStyle.SINGLE, size: 1, color: '000000'}, // 下边框
                        //     left: {style: BorderStyle.SINGLE, size: 1, color: '000000'}, // 左边框
                        //     right: {style: BorderStyle.SINGLE, size: 1, color: '000000'}, // 右边框
                        //   },
                        // }),
                        new TextRun({
                          text: '专有信息声明',
                          font: 'SimHei',
                          size: 14,
                          color: '#000000'
                        }),
                      ],
                      alignment: AlignmentType.CENTER,
                    }),
                    new Paragraph({
                      children: [
                        new TextRun({
                          text: '本文件含有中国商用飞机有限责任公司的专有信息。未经中国商用飞机有限责任公司书面授权，不可基于任何目的将本文件所含信息的全部或部分内容进行直接或间接的复制、引用、披露或使用。如果取得书面授权，应当将本声明完整地加入所有副本中。非授权接收人应立即告知中国商用飞机有限责任公司并退回本文件及任何副本。中国商用飞机有限责任公司保留本文件一切版权。',
                          font: 'SimHei',
                          size: 14,
                          color: '#000000'
                        }),
                      ],
                      alignment: AlignmentType.LEFT
                    }),
                  ],
                }),
            },
            children: [
              //密级
              new Paragraph({
                children: [
                  new TextRun({
                    text: '密级：内部',
                    font: 'SimSun',
                    size: 24,
                  }),
                ],
                alignment: AlignmentType.RIGHT,
              }),
              //一级标题
              new Paragraph({
                headingStyle: 'Heading1',
                children: [
                  new TextRun({
                    text: '中国商用飞机有限责任公司文件',
                    font: 'SimHei',
                    size: 60,
                    color: '#000000',
                    bold: true,
                    underline: true,
                    characterSpacingScale: 0.8,
                  }),
                ],
                alignment: AlignmentType.CENTER,
                spacing: {
                  before: 1440,
                  after: 1440,
                },
              }),
              // new Paragraph({
              //   children: [
              //     // new Drawing({
              //     //   mimeType: 'image/svg+xml',
              //     //   editingType: 'xml',
              //     //   data: svgData,
              //     //   emus: 100,
              //     // },{
              //     //   // mimeType: 'image/svg+xml',
              //     //   // editingType: 'xml',
              //     //   // emus: 100,
              //     // }),
              //   ],
              // }),
              //二级标题1
              new Paragraph({
                headingStyle: 'Heading2',
                children: [
                  new TextRun({
                    text: '重量分布偏差报告',
                    font: 'SimHei',
                    size: 52,
                    color: '#000000'
                  }),
                ],
                alignment: AlignmentType.CENTER,
                spacing: {
                  before: 2880,
                  after: 1440,
                },
              }),
              //二级标题2
              new Paragraph({
                headingStyle: 'Heading2',
                children: [
                  new TextRun({
                    text: '山东山大华天软件有限公司',
                    font: 'SimHei',
                    size: 44,
                    color: '#000000'
                  }),
                ],
                alignment: AlignmentType.CENTER,
                spacing: {
                  before: 6120,
                  after: 600,
                },
              }),
            ],
          },
        ],
      });

      //二、Section2: 表格和图片数据
      let secondSection = [
        //1.表格
        //一级标题1
        new Paragraph({
          headingStyle: 'Heading1',
          children: [
            new TextRun({
              text: '1 重量分析统计表',
              font: 'SimHei',
              size: 24,
              color: '#000000'
            }),
          ],
          alignment: AlignmentType.LEFT,
          spacing: {
            before: 240,
            after: 240,
          },
        }),
        new Paragraph({
          children: [
            new TextRun({
              text: '表1 重量分配统计表',
              font: 'SimHei',
              size: 24,
              color: '#000000',
            }),
          ],
          alignment: AlignmentType.CENTER,
        }),
        new Table({
          properties: {
            tableId: 1, // 设置表格ID
            name: '表1 重量分配统计表', // 设置表格名称
          },
          width: {
            size: 100, // 宽度百分比，例如100%
            type: WidthType.PERCENTAGE,
          },
          rows: tableData.map((rowData, rowIndex) => {
            return new TableRow({
              children: rowData.map((cellData, cellIndex) => {
                return new TableCell({
                  children: [
                    new Paragraph({
                      children: [
                        new TextRun({
                          text: cellData.toString(),
                          font: 'Times New Roman',
                          size: 18,
                          color: '#000000',
                        }),
                      ],
                      alignment: AlignmentType.CENTER,
                    }),
                  ],

                  font: {
                    type: 'Times New Roman',
                    size: 48,
                  },
                  verticalAlign: VerticalAlign.CENTER, // 设置垂直对齐方式
                  shading: rowIndex === 0 ? {
                    fill: '#D2E2F4',
                    type: ShadingType.CLEAR, // 或者选择其他类型如SHADING_TYPE.SOLID
                  } : rowIndex !== 0 && cellIndex === 0 ? {
                    fill: '#EEF3E2',
                    type: ShadingType.CLEAR,
                  } : {
                    fill: '#F2F2F2',
                    type: ShadingType.CLEAR,
                  },
                  margins: {
                    top: 100, // 上边距（单位： Twip）
                    bottom: 100, // 下边距（单位： Twip）
                    left: 100, // 左边距（单位： Twip）
                    right: 100, // 右边距（单位： Twip）
                  },
                  borders: {
                    top: {style: BorderStyle.SINGLE, size: 1, color: '000000'}, // 上边框
                    bottom: {style: BorderStyle.SINGLE, size: 1, color: '000000'}, // 下边框
                    left: {style: BorderStyle.SINGLE, size: 1, color: '000000'}, // 左边框
                    right: {style: BorderStyle.SINGLE, size: 1, color: '000000'}, // 右边框
                  },
                });
              }),
            });
          }),
        }),
        new Paragraph({
          text: '',
        }),
        //2.统计图
        //一级标题2
        new Paragraph({
          headingStyle: 'Heading2',
          children: [
            new TextRun({
              text: '2 重量分析统计图',
              font: 'SimHei',
              size: 24,
              color: '#000000'
            }),
          ],
          alignment: AlignmentType.LEFT,
          spacing: {
            before: 240,
            after: 240,
          },
        }),
        //图片
        new Paragraph({
          children: [
            new ImageRun({
              data: url,
              transformation: {
                width: 741,
                height: 334,
              },
            }),
          ],
          alignment: AlignmentType.CENTER,
        }),
        new Paragraph({
          children: [
            new TextRun({
              text: '图1 重量分配统计图',
              font: 'SimHei',
              size: 24,
              color: '#000000'
            }),
          ],
          alignment: AlignmentType.CENTER,
        }),
      ];

      //添加章节二
      doc.addSection({
        properties: {
          page: {
            size: { width: 21 * 720 / 1.27, height: 29.7 * 720 / 1.27 },
            margin: { top: 1.5 * 720 / 1.27, right: 1.0 * 720 / 1.27, bottom: 1.0 * 720 / 1.27, left: 1.0 * 720 / 1.27 },
          },
        },
        headers: {
          default: new Header({
            children: [
              new Paragraph({
                children: [
                  new TextRun({
                    text: '\n',
                    font: 'SimSun',
                    size: 12,
                  }),
                ],
              }),
              new Paragraph({
                children: [
                  new ImageRun({
                    data: comacURL,
                    transformation: {
                      width: 46,
                      height: 30,
                    },
                  }),
                ],
                alignment: AlignmentType.LEFT,
              }),
            ],
          }),
        },
        footers: {
          default:
            new Footer({
              children: [
                new Paragraph({
                  children: [
                    new TextRun({
                      text: '专有信息声明',
                      font: 'SimHei',
                      size: 14,
                      color: '#000000'
                    }),
                  ],
                  alignment: AlignmentType.CENTER,
                }),
                new Paragraph({
                  children: [
                    new TextRun({
                      text: '本文件含有中国商用飞机有限责任公司的专有信息。未经中国商用飞机有限责任公司书面授权，不可基于任何目的将本文件所含信息的全部或部分内容进行直接或间接的复制、引用、披露或使用。如果取得书面授权，应当将本声明完整地加入所有副本中。非授权接收人应立即告知中国商用飞机有限责任公司并退回本文件及任何副本。中国商用飞机有限责任公司保留本文件一切版权。',
                      font: 'SimHei',
                      size: 14,
                      color: '#000000'
                    }),
                  ],
                  alignment: AlignmentType.LEFT,
                }),
              ],
            }),
        },
        children: secondSection,
      });

      //三、Section3: 重量分配分析
      //一级标题3
      let massHeader = new Paragraph({
        headingStyle: 'Heading2',
        children: [
          new TextRun({
            text: '3 重量分配分析',
            font: 'SimHei',
            size: 24,
            color: '#000000'
          }),
        ],
        alignment: AlignmentType.LEFT,
        spacing: {
          before: 240,
          after: 240,
        },
      });

      //段落组
      let paragraphs = [];
      paragraphs.push(massHeader);
      let massAttributeInfoList = copyJSON(this.histogramInfoList);

      //按权重偏差分组
      let highWeightList = [];
      let lowWeightList = [];
      let equalWeightList = [];
      massAttributeInfoList.forEach((item, index) => {
        if (item.deviationWeight > 0) {
          highWeightList.push(item);
        } else if (item.deviationWeight < 0) {
          lowWeightList.push(item);
        } else {
          equalWeightList.push(item);
        }
      });

      //绝对值降序
      highWeightList.sort((a, b) => {
        if (parseFloat(a.deviationWeight) < parseFloat(b.deviationWeight)) {
          return 1;
        } else if (parseFloat(a.deviationWeight) > parseFloat(b.deviationWeight)) {
          return -1;
        } else if (parseFloat(a.deviationWeight) === parseFloat(b.deviationWeight)) {
          return a.name.localeCompare(b.name);
        }
        return 0;
      });
      lowWeightList.sort((a, b) => {
        if (parseFloat(a.deviationWeight) > parseFloat(b.deviationWeight)) {
          return 1;
        } else if (parseFloat(a.deviationWeight) < parseFloat(b.deviationWeight)) {
          return -1;
        } else if (parseFloat(a.deviationWeight) === parseFloat(b.deviationWeight)) {
          return a.name.localeCompare(b.name);
        }
        return 0;
      });

      //构建Paragraph数据
      let assemblyList = [highWeightList, lowWeightList, equalWeightList];
      let itemNameList = [
        'count',
        'density',
        'volume',
        'area',
        'baryCenter',
        'axesAndMoments',
        'BT',
        'OT',
        'protoName',
        'deviationWeight',
        'deviationMass'
      ];
      assemblyList.forEach((list, listIndex) => {
        let title = '';
        if (listIndex == 0) {
          title = '实际权重高于标准权重';
        } else if (listIndex == 1) {
          title = '实际权重低于标准权重';
        } else if (listIndex == 2) {
          title = '实际权重等于标准权重';
        }
        //一级标题3的二级标题
        let paragraphList = new Paragraph({
          headingStyle: 'Heading3',
          children: [
            new TextRun({
              text: '3.' + (listIndex + 1).toString() + ' ' + title,
              font: 'Times New Roman',
              color: '#000000',
              size: 24,
            })
          ],
          spacing: {
            before: 240,
            after: 120,
          },
        });
        paragraphs.push(paragraphList);

        if (list.length === 0) {
          let paragraph = new Paragraph({
            children: [
              new TextRun({
                text: '无。',
                font: 'Times New Roman',
                color: '#000000',
                size: 24,
              })
            ],
            spacing: {
              before: 240,
              after: 120,
            },
            indent: {
              firstLine: 72 * 6.5, // 2 characters in Chinese character width
            },
            alignment: AlignmentType.LEFT,
          });
          paragraphs.push(paragraph);
          return;
        }
        //零件信息
        list.forEach((info, index) => {
          //零件/子装配名称
          let paragraph = new Paragraph({
            headingStyle: 'Heading4',
            children: [
              new TextRun({
                text: '(' + (index + 1).toString() + ')' + info.name,
                font: 'Times New Roman',
                color: '#000000',
                size: 24,
              })
            ],
            spacing: {
              before: 240,
              after: 120,
            },
          });
          paragraphs.push(paragraph);
          //其他元素
          itemNameList.forEach(item => {
            //1.msg：标题+单行数据
            let msg = this.$t('message.MassDistributionCheckTool.' + item);
            if (info.hasOwnProperty(item + 'Unit')) {
              //（1）密度等
              msg = msg + ': ' + info[item] + info[(item + 'Unit')];
            } else if (item === 'baryCenter') {
              //（2）重心
              msg = msg + '(' + info[item].unit + ')' + ': ';
              msg = msg + '(' + info[item].x + ', ' + info[item].y + ', ' + info[item].z + ')';
            } else if (item === 'axesAndMoments') {
              //（3）axesAndMoments
              msg = msg + '(' + info[item].unit + ')' + '，' + this.$t('message.MassDistributionCheckTool.centerOfMass') + ': ';
            } else if (item === 'BT') {
              //（4）BT
              msg = this.$t('message.MassDistributionCheckTool.momentsOfInertia') + '(' + info[item].unit + ')' + '，'
                + this.$t('message.MassDistributionCheckTool.centerOfMassAndAlignOutputCoordinateSystem') + ': ';
            } else if (item === 'OT') {
              //（5）OT
              msg = this.$t('message.MassDistributionCheckTool.momentsOfInertia') + '(' + info[item].unit + ')' + '，'
                + this.$t('message.MassDistributionCheckTool.outputCoordinateSystem') + ': ';
            } else {
              //（6）权重偏差、重量偏差
              if (item === 'deviationWeight') {
                if (info.deviationWeight < 0) {
                  msg = msg + ': ' + '该件原重量权重比预定义权重指数少' + Math.abs(info.deviationWeight) + '/%';
                } else if (info.deviationWeight > 0) {
                  msg = msg + ': ' + '该件原重量权重比预定义权重指数多' + Math.abs(info.deviationWeight) + '/%';
                } else {
                  msg = msg + ': ' + '该件原重量权重与预定义权重指数一致';
                }
              } else if (item === 'deviationMass') {
                if (info.deviationMass < 0) {
                  msg = msg + ': ' + '该件原重量比预定义重量少' + Math.abs(info.deviationMass) + info.massUnit;
                } else if (info.deviationMass > 0) {
                  msg = msg + ': ' + '该件原重量比预定义重量多' + Math.abs(info.deviationMass) + info.massUnit;
                } else {
                  msg = msg + ': ' + '该件原重量与预定义重量一致';
                }
              } else {
                //（7）数量等
                msg = msg + ': ' + info[item];
              }
            }

            let paragraphItem = new Paragraph({
              children: [
                new TextRun({
                  text: msg,
                  font: 'Times New Roman',
                  color: '#000000',
                  size: 24,
                })
              ],
              spacing: {
                before: 240,
                after: 120,
              },
              indent: {
                firstLine: 72 * 6.5, // 2 characters in Chinese character width
              },
              alignment: AlignmentType.LEFT,
            });
            paragraphs.push(paragraphItem);

            //2.contentMsg：惯性张量相关的多行数据
            if (item === 'axesAndMoments') {
              let titleList = ['Lx', 'Ly', 'Lz', 'Px', 'Py', 'Pz'];
              titleList.forEach(title => {
                let contentMsg = title + ' = ' + info[item][title];
                let paragraphContent = new Paragraph({
                  children: [
                    new TextRun({
                      text: contentMsg,
                      font: 'Times New Roman',
                      color: '#000000',
                      size: 24,
                    })
                  ],
                  spacing: {
                    before: 240,
                    after: 120,
                  },
                  indent: {
                    firstLine: 72 * 13, // 2 characters in Chinese character width
                  },
                  alignment: AlignmentType.LEFT,
                });
                paragraphs.push(paragraphContent);
              });
            } else if (item === 'BT' || item === 'OT') {
              let titleList = ['Lxx', 'Lyx', 'Lzx', 'Lxy', 'Lyy', 'Lzy', 'Lxz', 'Lyz', 'Lzz'];
              titleList.forEach(title => {
                let contentMsg = title + ' = ' + info[item][title];
                let paragraphContent = new Paragraph({
                  children: [
                    new TextRun({
                      text: contentMsg,
                      font: 'Times New Roman',
                      color: '#000000',
                      size: 24,
                    })
                  ],
                  spacing: {
                    before: 240,
                    after: 120,
                  },
                  indent: {
                    firstLine: 72 * 13, // 2 characters in Chinese character width
                  },
                  alignment: AlignmentType.LEFT,
                });
                paragraphs.push(paragraphContent);
              });
            }
          });
          let paragraphSpace = new Paragraph({
            text: '',
          });
          paragraphs.push(paragraphSpace);
        });
      });
      //添加章节三
      doc.addSection({
        properties: {
          page: {
            size: { width: 21 * 720 / 1.27, height: 29.7 * 720 / 1.27 },
            margin: { top: 1.5 * 720 / 1.27, right: 1.0 * 720 / 1.27, bottom: 1.0 * 720 / 1.27, left: 1.0 * 720 / 1.27 },
          },
        },
        children: paragraphs,
      });
      // 将文档保存为Word文件
      Packer.toBlob(doc).then((blob) => {
        saveAs(blob, 'Assembly.docx');
      });
    },
  },
  watch: {
    'assemblyTreeMassAttributeInfoList': {
      handler(newVal, oldVal) {
        this.computeStandardMass();
        this.initTableHeight();
      },
    },
    'histogramInfoList': {
      handler(newVal, oldVal) {
        this.computeStandardMass();
      },
    },
    'isMassComputed': {
      handler(newVal, oldVal) {
        this.computeCount = 0;
        this.computeStandardMass();
      },
    },
    'isExportHistogram': {
      handler(newVal, oldVal) {
        this.exportHistogram();
      },
    },
  }
}
</script>

<style>
.editor-input {
    width: 100%;
}

.settingsMenu .el-popover {
    background: var(--bg-color28);
}
</style>

<style scoped>
.mass-distribution-check-info-content div {
    white-space: nowrap;
}

.mass-distribution-check-histogram {
    overflow: auto;
    white-space: nowrap;
    position: relative;
    width: 100%;
}

.mass-distribution-check-wrapper {
    overflow-y: auto;
    height: 500px;
}

>>> ::-webkit-scrollbar {
    height: 5px;
}

>>> ::-webkit-scrollbar-thumb {
    border-radius: 5px;
}

>>> .el-table .el-table__header .cell {
    font-size: 13px;
}

>>> .el-table__body-wrapper::-webkit-scrollbar {
    scrollbar-bottom: 50px;
    height: 8px;
}

>>> .el-table .el-table__fixed {
    height: auto !important;
    bottom: 6px !important;
}

>>> .el-table td, >>> .el-table th {
    padding: 0;
}

>>> .el-table .cell, >>> .el-table--border td:first-child .cell, >>> .el-table--border th:first-child .cell {
    padding: 3px 6px;
}

>>> .el-table th {
    background-color: var(--bg-color8) !important;
    color: var(--text-color1)
}

>>> .el-table__empty-text {
    line-height: 30px;
}

>>> .el-table__empty-block {
    min-height: 30px;
}

>>> .el-divider {
    margin: 15px 0;
}

.settingsMenu .el-form-item {
    margin-bottom: 10px;
}

>>> .el-form-item__label {
    line-height: 25px;
}

>>> .el-radio {
    padding: 10px 0;
}

>>> .el-table {
    color: var(--text-color1);
}

>>> .el-table tr {
    background-color: var(--bg-color1) !important;
}

>>> .el-table__fixed-right::before, >>> .el-table__fixed::before {
    background-color: transparent;
}

>>> .el-table__body tr.current-row > td {
    background-color: transparent
}

>>> .el-table__body tr.current-row {
    box-shadow: 0 0 6px var(--bg-color5) inset;
    background-color: var(--bg-color7) !important;
    border-radius: 4px;
}

>>> .el-table__body tr:hover > td, >>> .hover-row > td {
    background-color: var(--bg-color7) !important;
}

>>> .el-table--border td, >>> .el-table--border th, >>> .el-table__body-wrapper .el-table--border.is-scrolling-left ~ .el-table__fixed {
    border-right: 1px solid var(--border-color3)
}

>>> .el-table--border th.gutter:last-of-type {
    border-bottom: 1px solid var(--border-color3);
}

>>> .el-table--border th, >>> .el-table__fixed-right-patch {
    border-bottom: 1px solid var(--border-color3)
}

>>> .el-table__fixed-footer-wrapper tbody td {
    border-top: 1px solid var(--border-color3);
    background-color: var(--bg-color1);
    color: #606266
}

>>> .el-table__footer-wrapper td {
    border-top: 1px solid var(--border-color3);
}

>>> .el-table__body-wrapper .el-table--border.is-scrolling-right ~ .el-table__fixed-right {
    border-left: 1px solid var(--border-color3);
}

>>> .el-table, >>> .el-table__expanded-cell {
    background-color: var(--bg-color1);
}

>>> .el-table__fixed-right-patch {
    background-color: var(--bg-color1);
}

>>> .el-table__footer-wrapper tbody td, >>> .el-table__header-wrapper tbody td {
    background-color: var(--bg-color1);
}

>>> .el-table-filter {
    border: 1px solid var(--border-color3);
    background-color: var(--bg-color1);
}

>>> .el-table th {
    color: var(--text-color1);
}

>>> .el-table--border::after, >>> .el-table--group::after, >>> .el-table::before {
    background-color: transparent
}

>>> .el-table td, >>> .el-table th.is-leaf {
    border-bottom: 1px solid var(--border-color3);
}

>>> .el-table--border, >>> .el-table--group {
    border: 1px solid var(--border-color3);
}

>>> .el-pagination__total, >>> .el-pagination__jump {
    color: var(--text-color1);
}

>>> .el-tag.el-tag--info {
    border: 1px solid var(--border-color3);
    background-color: var(--bg-color1);
    color: var(--text-color1);
}

>>> .el-pagination.is-background .el-pager li:not(.disabled) {
    background-color: var(--bg-color3);
    color: var(--text-color1);
}

>>> .el-pagination.is-background .el-pager li:not(.disabled).active {
    background-color: #409EFF;
    color: #FFF;
}

>>> .el-pagination button {
    background-color: var(--bg-color3) !important;
    color: #C0C4CC !important;
}

>>> .el-pagination button:disabled {
    color: #606266 !important;
}

>>> .el-radio-button__orig-radio:checked + .el-radio-button__inner {
    border-bottom: 1px solid #409EFF !important;
    background-color: var(--bg-color3);
    color: #409EFF;
}

>>> .el-radio-button__inner {
    border-radius: 0px !important;
    border: 0px !important;
    background-color: var(--bg-color1);
    color: var(--text-color1);
}
.attributeSelect >>> .el-select__tags, .typeAccording2 >>> .el-select__tags {
    display: none;
}

>>> .el-table .cell.el-tooltip {
    min-width: 1px !important;
}

>>> .el-table__row .cell .attr-content {
    display: flex;
    justify-content: center;
    min-height: 29px;
}

>>> .el-table__row .cell .attr-content span {
    align-self: center;

    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
</style>
